package org.dromara.apartment.domain.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import org.dromara.apartment.domain.ApartmentInfo;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.apartment.domain.FacilityInfo;
import org.dromara.apartment.domain.LabelInfo;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.springframework.transaction.annotation.Transactional;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;


/**
 * 公寓管理视图对象 apartment_info
 *
 * @author ckj
 * @date 2025-06-11
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ApartmentInfo.class)
public class ApartmentInfoVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 公寓id
     */
    @ExcelProperty(value = "公寓id")
    private Long id;

    /**
     * 公寓名称
     */
    @ExcelProperty(value = "公寓名称")
    private String name;

    /**
     * 公寓介绍
     */
    @ExcelProperty(value = "公寓介绍")
    private String introduction;

    /**
     * 所处区域id
     */
    @ExcelProperty(value = "所处区域id")
    private Integer districtId;

    /**
     * 区域名称
     */
    @ExcelProperty(value = "区域名称")
    private String districtName;

    /**
     * 所处城市id
     */
    @ExcelProperty(value = "所处城市id")
    private Integer cityId;

    /**
     * 城市名称
     */
    @ExcelProperty(value = "城市名称")
    private String cityName;

    /**
     * 所处省份id
     */
    @ExcelProperty(value = "所处省份id")
    private Integer provinceId;

    /**
     * 省份名称
     */
    @ExcelProperty(value = "省份名称")
    private String provinceName;

    /**
     * 详细地址
     */
    @ExcelProperty(value = "详细地址")
    private String addressDetail;

    /**
     * 经度
     */
    @ExcelProperty(value = "经度")
    private String longitude;

    /**
     * 纬度
     */
    @ExcelProperty(value = "纬度")
    private String latitude;


    /**
     * 公寓前台电话
     */
    @ExcelProperty(value = "公寓前台电话")
    private String phone;

    /**
     * 是否发布（1:发布，0:未发布）
     */
    @ExcelProperty(value = "是否发布", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=:发布，0:未发布")
    private Boolean isRelease;

    /**
     * 排序
     */
    private Integer sort;

    /**
     * 缩略图
     */
    private String thumbnail;

    /**
     * 缩略图地址
     */
    @Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "thumbnail")
    private String thumbnailUrl;

    /**
     * 图片列表
     */
    private String graphBoList;

    /**
     * 图片集合
     */
    private List<GraphInfoVo> graphVoList;

    /**
     * 标签列表
     */
    private List<LabelInfoVo> labelInfoList;

    /**
     * 配套列表
     */
    private List<FacilityInfoVo> facilityInfoList;

    /**
     * 杂费列表
     */
    private List<FeeValueVo> feeValueVoList;

    /**
     * 房间列表
     */
    private List<RoomInfoVo> roomInfoVoList;


    /**
     * 房间总数
     */
    private Integer totalRoomCount;


    /**
     * 空闲房间数
     */
    private Integer freeRoomCount;

    /**
     * 最低租金
     */
    private Integer minRent;

    /**
     * 距离
     */
    private Double distance;



}
